package com.leyou.order.controller;

import com.leyou.order.service.OrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

/**
 * @author LT
 * @version 1.0.0
 * @ClassName PayController.java
 * @Description TODO 支付控制器
 * @createTime 2020年05月24日 12:32:00
 */

@RestController  // 默认响应的是JSON，如果指定了produces：就是你指定的类型
public class PayController {

    @Autowired
    private OrderService orderService;

    /**
     * 微信通知我们支付的结果
     *
     * @param msg： 我们把xml转成对象
     * @return ： 返回给微信，返回是map，springmvc会帮我们转成xml，因为指定了 produces
     * <p>
     * * 此处理器是有微信来访问的，所以一些规则按照微信的来
     * * 微信要求我们必须返回xml格式的数据
     * * 只要处理器上有@ResponseBody，并且项目中有解析xml的jar包，而且要指定返回xml的数据，就可以返回xml数据了
     */
    @PostMapping(value = "/pay/notify", produces = "application/xml")
    public Map<String, String> payNotify(
            // 默认情况下也是把json转成对象 ， 如果我们指定xml的配置，它会把xml转成对象
            @RequestBody Map<String, String> msg
    ) {
        orderService.payNotify(msg);
        Map<String, String> stringMap = new HashMap<>();
        stringMap.put("return_code", "SUCCESS");
        stringMap.put("return_msg", "OK");
        return stringMap;
    }
}
